﻿using System;
using System.Web.UI;
using Cloud.BaseCode;
using Library.Cloud.Util;
using NHibernate;

namespace Cloud
{
    public partial class Login : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Session["Login"] = false;
            _pnlGuvenlikKodu.Visible = false;
            if ((int)(Session["LoginAttempt"] ?? 0) >= 3)
                _pnlGuvenlikKodu.Visible = true;
        }        

        protected void _login_Click(object sender, ImageClickEventArgs e)
        {
            Session["LoginAttempt"] = (int)(Session["LoginAttempt"] ?? 0) + 1;
            if (Session["GuvenlikKodu"] != null && !Session["GuvenlikKodu"].ToString().Equals(_dogrulamaKodu.Text, StringComparison.OrdinalIgnoreCase))
            {
                //throw new Exception("Resimde görülen karakterleri doğrulama kodu alanına giriniz.");
                ModalDialog.InnerHtml = "Resimde görülen karakterleri doğrulama kodu alanına giriniz.";
                return;
            }
            if (String.IsNullOrEmpty(_firmaKodu.Text) || String.IsNullOrEmpty(_kullaniciAdi.Text) || String.IsNullOrEmpty(_sifre.Text))
            {
                //throw new Exception("Lütfen tüm alanları doldurunuz. (Firma Kodu / Kullanıcı Adı / Şifre)");
                ModalDialog.InnerHtml = "Lütfen tüm alanları doldurunuz.<br />(Firma Kodu / Kullanıcı Adı / Şifre)";
                return;
            }

            var kullaniciId = CloudDao().Custom().CloudLogin(_firmaKodu.Text, _kullaniciAdi.Text, CloudUtil.CloudSifreHash(_firmaKodu.Text, _sifre.Text));
            if (String.IsNullOrEmpty(kullaniciId))
            {
                //throw new Exception("Firma Kodu / Kullanıcı Adı / Şifre bilgilerinden bir veya birkaçı hatalı.");
                ModalDialog.InnerHtml = "Firma Kodu / Kullanıcı Adı / Şifre<br />bilgilerinden bir veya birkaçı hatalı.";
                return;
            }

            var dto = CloudDao().CloudFirmaKullanici().Get(Convert.ToInt32(kullaniciId), LockMode.Read);
            Session["Kullanici"] = dto;

            Session["Login"] = true;
            Session["LoginAttempts"] = 0;
            Redirect("/Default");
        }
    }
}